Entity কি এবং এটি কিভাবে Table এর সাথে Mapping করে

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Entity এবং Table Mapping
181

Entity কী?

Entity হলো একটি জাভা ক্লাস যা ডেটাবেস টেবিলের সাথে ম্যাপিং করে। Entity ব্যবহার করে ডেটাবেস টেবিলের প্রতিটি রেকর্ডকে জাভা অবজেক্ট হিসেবে উপস্থাপন করা হয়। স্প্রিং বুট ORM-এ @Entity অ্যানোটেশন ব্যবহার করে একটি ক্লাসকে Entity হিসেবে চিহ্নিত করা হয়।

Entity-এর বৈশিষ্ট্য:

  1. একটি Entity সরাসরি একটি ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।
  2. প্রতিটি টেবিলের কলাম Entity-এর ফিল্ড বা অ্যাট্রিবিউট হিসেবে কাজ করে।
  3. @Id অ্যানোটেশন ব্যবহার করে Entity-তে প্রাইমারি কী (Primary Key) নির্ধারণ করা হয়।

Entity এবং Table Mapping কিভাবে কাজ করে?

১. Entity ক্লাস তৈরি

Entity ক্লাস তৈরির জন্য নিচের ধাপগুলো অনুসরণ করতে হবে:

  • @Entity: ক্লাসটিকে ডেটাবেস টেবিলের সাথে ম্যাপ করার জন্য ব্যবহার করা হয়।
  • @Table: টেবিলের নাম কাস্টমাইজ করতে ব্যবহার করা হয়। এটি ঐচ্ছিক।
  • @Id: প্রাইমারি কী হিসেবে কোনো ফিল্ড চিহ্নিত করার জন্য ব্যবহৃত হয়।
  • @GeneratedValue: প্রাইমারি কী-এর মান স্বয়ংক্রিয়ভাবে জেনারেট করতে ব্যবহার করা হয়।
  • @Column: ডেটাবেস কলামের সাথে ক্লাসের ফিল্ড ম্যাপ করতে ব্যবহার করা হয়।

উদাহরণ:

import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Id;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Column;

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name", nullable = false)
    private String name;

    @Column(name = "email", unique = true)
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

২. Entity এবং Table Mapping প্রক্রিয়া

Mapping এর জন্য প্রয়োজনীয় Annotation গুলো:

  • @Entity: এটি ক্লাসটিকে একটি ডেটাবেস টেবিলের সাথে সংযুক্ত করে।
  • @Table: টেবিলের নাম স্পষ্টভাবে উল্লেখ করার জন্য ব্যবহৃত হয়। যদি @Table ব্যবহার না করা হয়, তবে ডিফল্টভাবে Entity-এর নাম টেবিলের নাম হিসেবে ব্যবহৃত হয়।
  • @Column: ডেটাবেস টেবিলের কলামের সাথে Entity-এর ফিল্ড ম্যাপ করে। আপনি ফিল্ডের জন্য কাস্টম নাম, ডেটা টাইপ, বা কনস্ট্রেইন্ট উল্লেখ করতে পারেন।

Mapping এর কাজ:

  1. @Entity এবং @Table নিশ্চিত করে যে, স্প্রিং বুট ডেটাবেসে একটি নির্দিষ্ট টেবিলের সাথে কাজ করছে।
  2. @Id নিশ্চিত করে যে, ডেটাবেসে এই ফিল্ডটি প্রাইমারি কী হিসেবে ব্যবহৃত হবে।
  3. @GeneratedValue প্রাইমারি কী-এর জন্য স্বয়ংক্রিয়ভাবে একটি ইউনিক মান প্রদান করে।
  4. @Column ডেটাবেস কলামের নাম, সাইজ, এবং অন্যান্য গুণাবলী নির্ধারণ করে।

৩. Hibernate এবং JPA-এর মাধ্যমে Table তৈরি

উপরের Entity ক্লাসটি ব্যবহার করে Hibernate বা JPA স্বয়ংক্রিয়ভাবে টেবিল তৈরি করতে পারে। এর জন্য application.properties বা application.yml ফাইলে নিচের কনফিগারেশন যোগ করুন:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password

এটি নিশ্চিত করে যে, Entity-এর উপর ভিত্তি করে Hibernate স্বয়ংক্রিয়ভাবে টেবিল তৈরি করবে।


Entity-এর মাধ্যমে CRUD অপারেশন

Spring Data JPA ব্যবহার করে Entity-এর উপর CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করা যায়। এর জন্য একটি JpaRepository ইন্টারফেস তৈরি করতে হয়।

উদাহরণ:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

এটি স্বয়ংক্রিয়ভাবে ডেটাবেস অপারেশনের জন্য প্রয়োজনীয় মেথড সরবরাহ করে।


সারাংশ

Entity হলো ডেটাবেস টেবিলের প্রতিনিধিত্বকারী একটি জাভা ক্লাস যা @Entity, @Table, এবং অন্যান্য অ্যানোটেশন ব্যবহার করে ডেটাবেসের সাথে ম্যাপিং করে। Hibernate বা JPA-এর মাধ্যমে Entity ব্যবহার করে ডেটাবেস টেবিল তৈরি, আপডেট এবং ডেটা পরিচালনা সহজে করা যায়। Entity এবং Table Mapping স্প্রিং বুট ORM-এর একটি গুরুত্বপূর্ণ ফিচার, যা ডেটাবেস পরিচালনাকে আরও কার্যকর এবং দ্রুত করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...